package com.c2b.algorithm.leetcode.base;

import java.util.Arrays;
import java.util.List;

/**
 * <a href='https://leetcode.cn/problems/points-that-intersect-with-cars/'>与车相交的点(Points That Intersect With Cars)</a>
 * <p>给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i，nums[i] = [starti, endi] ，其中 starti 是第 i 辆车的起点，endi 是第 i 辆车的终点。</p>
 * <p>返回数轴上被车 任意部分 覆盖的整数点的数目。</p>
 *
 * <p>
 * <b>示例</b>
 * <pre>
 * 示例 1：
 *      输入：nums = [[3,6],[1,5],[4,7]]
 *      输出：7
 *      解释：从 1 到 7 的所有点都至少与一辆车相交，因此答案为 7 。
 *
 * 示例 2：
 *      输入：nums = [[1,3],[5,8]]
 *      输出：7
 *      解释：1、2、3、5、6、7、8 共计 7 个点满足至少与一辆车相交，因此答案为 7 。
 * </pre>
 * </p>
 *
 * <p>
 * <b>提示：</b>
 *  <ul>
 *      <li>1 <= nums.length <= 100</li>
 *      <li>nums[i].length == 2</li>
 *      <li>1 <= starti <= endi <= 100</li>
 *  </ul>
 * </p>
 *
 * @author c2b
 * @since 2024/1/23 10:18
 */
public class LC2848PointsThatIntersectWithCars_S {

    static class Solution {
        public int numberOfPoints(List<List<Integer>> nums) {
            boolean[] cnt = new boolean[101];
            for (List<Integer> numList : nums) {
                for (int i = numList.get(0); i <= numList.get(1); i++) {
                    cnt[i] = true;
                }
            }
            int res = 0;
            for (int i = 1; i < cnt.length; i++) {
                if (cnt[i]) {
                    ++res;
                }
            }
            return res;
        }
    }

    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.numberOfPoints(Arrays.asList(Arrays.asList(3, 6), Arrays.asList(1, 5), Arrays.asList(4, 7))));
        System.out.println(solution.numberOfPoints(Arrays.asList(Arrays.asList(1, 3), Arrays.asList(5, 8))));
    }
}
